<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3.定时器setTimeout setInterval</title>
</head>
<body>
<p>当不需要setInterval或者setTimeout时，
    定时器没有被clear，
    定时器的回调函数以及内部依赖的变量都不能被回收，造成内存泄漏。
    比如：vue使用了定时器，需要在beforeDestroy 中做对应销毁处理。js也是一样的。</p>
</body>
<script>


    //方法一
    let count = 0
    let timer = null
    function foo(){
      window.clearTimeout(timer)  // 先清除定时器，避免内存泄漏
       count++
        console.log(count)
        if(count>5){
           return
        }
        timer = setTimeout(foo,100)
    }
    foo()


    //方法二
    // let n = 0
    // function foo2(){
    //     n++
    //     console.log('foo2 n:',n)
    //     if(n>5){
    //         return null
    //     }
    //    let  timer = setTimeout(foo2,100) // 每次执行都会销毁
    // }
  //  foo2()



</script>
</html>